package struts.actionForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import metier.Etudiant;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import dao.DAOEtudiant;
import dao.hbm.DAOEtudiantHBM;

public class BeanConnexionEtu extends ActionForm
{
	private static final long serialVersionUID = 1L;

	public BeanConnexionEtu()
	{
		super();
	}
	
	
	@Override
	public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
	{
		HttpSession session = request.getSession(false);
		
		ActionErrors erreurs = new ActionErrors();
		if(this.getIdentifiant() == null || this.getIdentifiant().trim().equals(""))
			erreurs.add("Identifiant manquant",new ActionMessage("beanConnexionDep.erreur.identifiant.manquant"));
		
		if(this.getMdp() == null || this.getMdp().trim().equals(""))
			erreurs.add("Mot de passe manquant",new ActionMessage("beanConnexionDep.erreur.passe.manquant"));
		
		if(!erreurs.isEmpty())
			return erreurs;
		
		try 
		{
			DAOEtudiant dao = DAOEtudiantHBM.getInstance();
			this.etudiant = dao.connexion(getIdentifiant(), getMdp());
			
			if(etudiant.getListeCandidatures().size() == 1)
			{
				if(etudiant.getListeCandidatures().get(0).getValideEtudiant() == true)
					session.setAttribute("valider", true);
				
			}
		} 
		
		catch (Exception e)
		{
			erreurs.add("Login et/ou mot de passe incorrects", new ActionMessage("beanConnexionDep.erreur.login.mdp.incorrects"));
		}
		
		return erreurs;
	}

	private Etudiant etudiant = new Etudiant(); 
	
	
	public String getIdentifiant()
	{
		return etudiant.getLogin();
	}
	
	public void setIdentifiant(String identifiant)
	{
		etudiant.setLogin(identifiant);
	}
	
	public String getMdp()
	{
		return etudiant.getMdp();
	}
	
	public void setMdp (String mdp)
	{
		etudiant.setMdp(mdp);
	}


	public Etudiant getEtudiant()
	{
		return etudiant;
	}

	public void setEtudiant(Etudiant etudiant)
	{
		this.etudiant = etudiant;
	}
}
